/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.losalpes.marketplace.pirfb.entities.test;

/**
 *
 * @author leon
 */
import co.com.losalpes.marketplace.pirfb.bos.SolicitudBO;
import co.com.losalpes.marketplace.pirfb.entities.Intencion;
import co.com.losalpes.marketplace.pirfb.entities.Solicitud;
import co.com.losalpes.marketplace.pirfb.entities.persistence.Persistence;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javax.persistence.Query;

public class InicializarSolicitudBO {

    //5
    //5
    public static final String[] categorias = {"Ropa", "Alimentos", "Celulares", "Computadores", "Calzado"};
    public static final String[] ropa = {"Camiseta", "Pantalon", "Medias", "Chaqueta", "Buzo"};
    public static final String[] alimentos = {"Pollo", "Leche", "Huevos", "Cerdo", "Galletas"};
    public static final String[] celulares = {"Nokia", "Xpiria 11", "Samsung Galaxy 1", "HTC One", "Motorla Razr"};
    public static final String[] computadores = {"Lenovo ", "Toshiba", "Compaq", "HP", "Sony"};
    public static final String[] calzado = {"Tenis", "Zapatos", "Chancletas", "Zapatillas", "Botas"};
    public static final String[][] productos = {ropa, alimentos, celulares, computadores, calzado};
    private static Random ranGen = new Random();
    private static Persistence persistence = new Persistence();
    private static List<SolicitudBO> solicitudBOs = new ArrayList<SolicitudBO>();

    /**
     * Inserta xx elementos en tabla cotizacion
     *
     * @param args
     */
    public static void main(String args[]) {
        Solicitud solicitud;
        Query query = persistence.createNativeQuery("SELECT * FROM  `intencion` WHERE tipo='VENTA'");
        List<String> intVent = query.getResultList();
        query = persistence.createNativeQuery("SELECT * FROM  `intencion` WHERE tipo='COMPRA'");
        List<String> intCompra = query.getResultList();

        //crear solicitudes sin confirmar
        for (int i = 0; i < 10; i++) {
            solicitud = incializarSolicitud();
            solicitud.setConfirmacion_comercio(ranGen.nextBoolean() + "");
            solicitud.setConfirmacion_fabricante(ranGen.nextBoolean() + "");
            persistence.persist(solicitud);
        }

    }

    private static Solicitud incializarSolicitud() {
        Solicitud solicitud = new Solicitud();
        String seq = "SOL" + System.currentTimeMillis();
        solicitud.setNumero(seq);
        solicitud.setNumero_intencion_compra("INT" + System.currentTimeMillis());
        solicitud.setNumero_intencion_venta("INT" + System.currentTimeMillis());
        return solicitud;
    }

    private String match(Intencion intencion) {
        int cant = intencion.getCantidad();
        long val = intencion.getValor();
        String sql = "SELECT * FROM  `intencion` "
                + "WHERE tipo='" + intencion.getTipo() + "' "
                + "and estado ='ABIERTA' "
                + "and categoria='" + intencion.getCategoria() + "' "
                + "and producto='" + intencion.getProducto() + "' "
                + "and (cantidad>" + cant * 0.7 + " or cantidad <" + cant * 1.3 + ") "
                + "and (valor>" + val * 0.7 + " or valor<" + val * 1.3 + "); ";
        Query query = persistence.createNativeQuery(sql);
        List<Intencion> intMatch = (List<Intencion>) query.getResultList();
        if (intMatch != null && intMatch.size() > 0) {
            return intMatch.get(0).getNumero();
        }
        return null;
    }

    public static List<SolicitudBO> getSolicitudBOs() {
        return solicitudBOs;
    }

    public static void setSolicitudBOs(List<SolicitudBO> solicitudBOs) {
        InicializarSolicitudBO.solicitudBOs = solicitudBOs;
    }
}
